Saltar al contenido principal

2.3 Operadores

Los operadores permiten realizar cálculos y comparaciones entre variables o valores. En Python existen distintos tipos:


1️⃣ Operadores aritméticos​

Se usan para operaciones matemáticas básicas.

OperadorDescripciónEjemplo (a=7, b=2)Resultado
+Sumaa + b9
-Restaa - b5
*Multiplicacióna * b14
/División reala / b3.5
//División enteraa // b3
%Restoa % b1
**Potenciaa ** b49

2️⃣ Operadores relacionales​

Comparan dos valores y devuelven un resultado booleano (True o False).

OperadorDescripciónEjemplo (a=5, b=3)Resultado
==Igual aa == bFalse
!=Distinto dea != bTrue
>Mayor quea > bTrue
<Menor quea < bFalse
>=Mayor o iguala >= bTrue
<=Menor o iguala <= bFalse

3️⃣ Operadores lógicos​

Se aplican sobre valores booleanos.

OperadorDescripciónEjemploResultado
andConjunción (y)True and FalseFalse
orDisyunción (o)True or FalseTrue
notNegaciónnot TrueFalse

4️⃣ Otros operadores: identidad y pertenencia​

Además de los operadores aritméticos, relacionales y lógicos, Python incorpora operadores especiales que permiten comprobar la identidad de los objetos y la pertenencia de elementos dentro de colecciones.

🟩 Operadores de identidad​

Los operadores de identidad no comparan valores, sino si dos variables hacen referencia al mismo objeto en memoria.

OperadorDescripciónEjemploResultado
isDevuelve True si dos variables apuntan al mismo objeto.a is bTrue o False
is notDevuelve True si dos variables apuntan a objetos distintos.a is not bTrue o False

Ejemplo práctico:

x = [1, 2, 3]
y = x # y referencia al mismo objeto que x
z = [1, 2, 3] # z tiene el mismo contenido pero es otro objeto

print(x is y) # True (misma referencia)
print(x is z) # False (contenido igual, objetos distintos)
print(x == z) # True (los valores son iguales)
👉 Diferencia importante:
  • is → comprueba identidad de objeto.
  • == → comprueba igualdad de valores.

🟦 Operadores de pertenencia​

Estos operadores verifican si un valor se encuentra o no dentro de una colección (lista, tupla, cadena, diccionario, conjunto, etc.).

OperadorDescripciónEjemploResultado
inDevuelve True si el elemento está dentro de la colección.3 in [1,2,3]True
not inDevuelve True si el elemento no está dentro de la colección."a" not in "python"True

Ejemplo práctico:

frutas = ["manzana", "pera", "uva"]

print("pera" in frutas) # True
print("melon" not in frutas) # True

texto = "Python"
print("P" in texto) # True
print("p" in texto) # False (sensible a mayúsculas)
📌 Nota práctica:
  • Se recomienda usar is únicamente para comprobar identidad con None:

    if valor is None:
    print("No tiene valor")
  • Para comparar valores (listas, cadenas, números, etc.) siempre se debe usar == o !=.


5️⃣ Operadores de asignación abreviada​

Permiten actualizar el valor de una variable de forma compacta.

x = 10
x += 5 # equivale a x = x + 5
x *= 2 # equivale a x = x * 2

6️⃣ Operadores bit a bit​

Los operadores bit a bit (bitwise operators) son aquellos que trabajan directamente sobre la representación binaria de los números enteros. En lugar de operar con los números en su valor decimal, comparan y manipulan los bits individuales (0 y 1) que los forman.

OperadorNombreDescripciónEjemplo (binario)Resultado
&ANDDevuelve 1 si ambos bits son 16 & 3 → 110 & 011010 = 2
|ORDevuelve 1 si al menos un bit es 16 | 3 → 110 | 011111 = 7
^XOR (OR exclusivo)Devuelve 1 si los bits son diferentes6 ^ 3 → 110 ^ 011101 = 5
~NOT (complemento)Invierte todos los bits (cambia 1 ↔ 0)~6 → ~(110)-7 (complemento a dos)
<<Desplazamiento izqDesplaza bits a la izquierda, rellena con 06 << 1 → 110 << 11100 = 12
>>Desplazamiento derDesplaza bits a la derecha, descarta el último bit6 >> 1 → 110 >> 111 = 3

Por ejemplo:

  • El número 6 en binario es 110
  • El número 3 en binario es 011

Cuando aplicamos 6 & 3, Python compara bit a bit ambas representaciones:

  110   (6)
& 011 (3)
-----
010 (2)

7️⃣ Precedencia de operadores​

El orden de precedencia de los operadores en Python determina qué operaciones se ejecutan primero cuando en una expresión aparecen varios operadores. Si dos operadores tienen la misma precedencia, se evalúan según su asociatividad (normalmente de izquierda a derecha).

De mayor a menor precedencia:

  1. Paréntesis () → alteran el orden natural.

  2. Exponentes **

  3. Signos unarios +x, -x, ~x

  4. Multiplicación y división *, /, //, %

  5. Suma y resta +, -

  6. Desplazamientos de bits <<, >>

  7. Operadores bit a bit

    • AND: &
    • XOR: ^
    • OR: |
  8. Comparaciones

    • Relacionales: <, <=, >, >=
    • Igualdad: ==, !=
    • Identidad: is, is not
    • Pertenencia: in, not in
  9. Operadores lógicos

    • NOT: not
    • AND: and
    • OR: or
  10. Asignación =, +=, -=, *=, /=, etc.

ejemplo
resultado = 3 + 4 * 2 ** 2
print(resultado) # 19

🔎 ¿Por qué 19 y no 28?

  • Primero se calcula 2 ** 2 → 4
  • Luego 4 * 4 → 16
  • Finalmente 3 + 16 → 19